package cc.linker.steplink.crm.merchanth5.dao.coupon;

import cc.linker.steplink.crm.merchanth5.pojo.MallGoodsPo;
import cc.linker.steplink.crm.merchanth5.pojo.coupon.CouponTacticsPo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface CouponH5Dao {
    CouponTacticsPo getCouponGoodsData(String couponId);

    /**
     * @Description：通过商品ID获取商品对应的所有优惠券
     * @DateTime：2020/8/21 8:43
     * @Params：
     * @Return：
     */
    List<Map<String, Object>> getCouponListByGoodsId(@Param("goodsId") String goodsId, @Param("orgId") String orgId,@Param("customerId") String customerId);

    /**
     * @Description：通过商品ID列表获取所有的优惠券设置情况
     * @DateTime：2020/8/21 8:43
     * @Params：
     * @Return：
     */
    List<Map<String, Object>> getCouponListByGoodsIds(@Param("goodsIds") List<Long> goodsIds);

    /**
     * @Description：获取用户在店铺内的订单数量，商品下单
     * @DateTime：2020/8/21 13:21
     * @Params：
     * @Return：
     */
    Integer getCustomerStoreOrderCount(@Param("customerId") String customerId, @Param("belongId") String belongId);


    /**
     * @Description：通过优惠券ID获取优惠券的策略设置
     * @DateTime：2020/8/21 17:41
     * @Params：
     * @Return：
     */
    List<CouponTacticsPo> getCouponTacticsByCouponId(@Param("couponId") String couponId);

    /**
     * @Description：通过优惠券ID获取商品列表
     * @DateTime：2020/8/21 17:41
     * @Params：
     * @Return：
     */
    List<MallGoodsPo> getMerchantGoodsList(Map params);

    List<String> getCouponIdByGoodsId(@Param("goodsId") Long goodsId, @Param("belongId") String belongId, @Param("orgId") String orgId);

    String getCustomerIdByUserId(@Param("adminId") String adminId);

    List<String> customerMeetTactics(@Param("customerId") String customerId);

    Map getVerificater(@Param("customerId") String customerId);

    void addVerificate(Map<String, Object> info);

    String getPhoneByCustomerId(@Param("customerId") String customerId);

    int getVerificaterCountByCustomerId(@Param("customerId") String customerId);

    void addVerificater(Map<String, Object> parms);

    Map getVerificaterByCustomerId(@Param("customerId") String customerId,@Param("belongId") String belongId);

    void updateVerificater(Map<String, Object> parms);

    void deleteVerificater(Map<String, Object> params);

    Map getPassVerificaterByCustomerId(String customerId);

    /**
    * @Description：用户是否在分群内
    * @DateTime：2021/3/30 11:00
    * @Params：
    * @Return：
    */
    Integer isCustomerExitGroup(@Param("customerId") String customerId,@Param("groupId") String groupId);

}
